﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ASCalpuff.FileLayers
{

    public class Lake : ICloneable
    {

        private int m_id = 0; //记数器
        /// <summary>
        /// 记数器
        /// </summary>
        public int Id
        {
            get { return m_id; }
            set { m_id = value; }
        }
        private string m_Sid = ""; //唯一标识
        /// <summary>
        /// 唯一标识
        /// </summary>
        public string Sid
        {
            get { return m_Sid; }
            set { m_Sid = value; }
        }
        private string m_Name = "";//名称
        /// <summary>
        /// 名称
        /// </summary>
        public string Name
        {
            get { return m_Name; }
            set { m_Name = value; }
        }


        /// <summary>
        /// 起点X网格
        /// </summary>
        private double m_XG1 = 0;
        /// <summary>
        /// 起点X网格
        /// </summary>
        public double XG1
        {
            get { return m_XG1; }
            set { m_XG1 = value; }
        }
        /// <summary>
        /// 起点Y网格
        /// </summary>
        private double m_XG2 = 0;
        /// <summary>
        /// 起点Y网格
        /// </summary>
        public double XG2
        {
            get { return m_XG2; }
            set { m_XG2 = value; }
        }

        /// <summary>
        /// 终点X网格
        /// </summary>
        private double m_YG1 = 0;
        /// <summary>
        /// 终点X网格
        /// </summary>
        public double YG1
        {
            get { return m_YG1; }
            set { m_YG1 = value; }
        }
        /// <summary>
        /// 终点Y网格
        /// </summary>
        private double m_YG2 = 0;
        /// <summary>
        /// 终点Y网格
        /// </summary>
        public double YG2
        {
            get { return m_YG2; }
            set { m_YG2 = value; }
        }



        /// <summary>
        /// 用户确定的海岸线起始X坐标
        /// </summary>
        private double m_XBCST = 0;
        /// <summary>
        /// 用户确定的海岸线起始X坐标
        /// </summary>
        public double XBCST
        {
            get { return m_XBCST; }
            set { m_XBCST = value; }
        }
        /// <summary>
        /// 用户确定的海岸线起始Y坐标
        /// </summary>
        private double m_YBCST = 0;
        /// <summary>
        /// 用户确定的海岸线起始Y坐标
        /// </summary>
        public double YBCST
        {
            get { return m_YBCST; }
            set { m_YBCST = value; }
        }
        /// <summary>
        /// 用户确定的海岸结束X坐标
        /// </summary>
        private double m_XECST = 0;
        /// <summary>
        /// 用户确定的海岸结束
        /// </summary>
        public double XECST
        {
            get { return m_XECST; }
            set { m_XECST = value; }
        }
        /// <summary>
        /// 用户确定的海岸线结束Y坐标
        /// </summary>
        private double m_YECST = 0;
        /// <summary>
        /// 用户确定的海岸线结束
        /// </summary>
        public double YECST
        {
            get { return m_YECST; }
            set { m_YECST = value; }
        }


        /// <summary>
        /// 每个箱体中地面站和探空站在湖冰区域内的个数
        /// </summary>
        int m_NLB = 0;
        /// <summary>
        /// 每个箱体中地面站和探空站在湖冰区域内的个数
        /// </summary>
        public int NLB
        {
            get { return m_NLB; }
            set { m_NLB = value; }
        }

        private List<int> m_METBXID = new List<int>();//设置站台号

        public List<int> METBXID
        {
            get { return m_METBXID; }
            set { m_METBXID = value; }
        }

        public object Clone()
        {
            Lake obj = new Lake();
            obj = (Lake)this.MemberwiseClone();
            List<int> arr = new List<int>();
            for (int i = 0; i < this.METBXID.Count; i++)
            {
                arr.Add(this.METBXID[i]);
            }
            obj.METBXID = arr;
            return obj;
        }
    }
}
